iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
AI & Data

AI白話文運動系列之「A!給我那張Image!」系列 第 13

CNN經典論文導讀(一)--LeNet與AlexNet

  • 分享至 

  • xImage
  •  

前言

在之前的系列中,我們從最基礎的AI模型架構以及AI怎麼學習,一路討論到在影像任務中佔據霸主地位許多年的CNN架構。接下來的系列我們會著重在經典CNN架構論文的導讀與實戰,看看CNN架構的模型會遇到哪些問題,各位厲害的前輩們又是透過甚麼方式處理問題的。

先備知識

  1. 對捲積運算有基礎的認識(可以回顧這篇的內容:https://ithelp.ithome.com.tw/articles/10323076 )
  2. 了解甚麼是捲積神經網路(Convolutional Neural Network)(可以回顧這篇的內容:https://ithelp.ithome.com.tw/articles/10323077)

看完今天的內容你可能會知道......

  • LeNet-5與AlexNet的架構是甚麼樣子
  • LeNet-5與AlexNet各自提出了哪些獨到的地方
  • 為甚麼這兩者會被譽為CNN的開山始祖

一、CNN架構的始祖--LeNet-5

  • 論文:https://axon.cs.byu.edu/~martinez/classes/678/Papers/Convolution_nets.pdf
  • 在1998年被提出的LeNet-5模型是非常非常經典的CNN架構模型,或許看到這裡有些人會覺得很震驚,原來CNN或者說是AI人工智慧這種東西這麼早就有人提出來了。其實這就是一般人容易被誤導的地方,AI的發展需要除了需要良好的模型設計以外,更是需要硬體設備的配合,這件事隨著ChatGPT的橫空出世而廣為人知,因此有許多優秀的架構/模型/演算法,其實已經誕生很久了,只是礙於當時的環境設備,無法證實他們的有效性。就好比我們先前討論過的梯度下降演算法,早在1847年就被柯西提出來了(參考:https://cs.uwaterloo.ca/~y328yu/classics/cauchy-en.pdf),是處理最佳化問題很常用的做法。
  • 另一點令人震驚的事實是:LeNet-5的模型架構與目前主流CNN架構幾乎沒有區別,以同樣分類任務的模型來說,LeNet-5使用了我們先前所介紹過的三大關鍵層:捲積層、激勵層以及分類層。可以說LeNet-5奠定了日後CNN架構模型的設計基礎。
  • https://ithelp.ithome.com.tw/upload/images/20230928/201632994uQByT7lxA.jpg
  • 聊完歷史的部分,接下來讓我們仔細研究一下LeNet-5的架構,從上圖可以看出整個模型總共有七層:捲積、下取樣、捲積、下取樣、全連接、全連接、輸出層。
  • LeNet-5所使用的捲積層是5*5的核,以目前的角度來看算是比較大的尺寸,而下取樣則是使用我們介紹過的平均池化,這邊可以關注的地方在於圖中的S2與C3之間的連接方式,熟悉捲積運算的人會覺得很奇怪,兩者的通道數(channel)不同,要怎麼進行運算?這時候就需要使用下面的表格了,跟一般的做法不一樣,LeNet-5的這個步驟不會將所有輸入影像都與捲積核進行運算,如果說輸出結果需要有16個通道的特徵圖的話,根據下表,我們可以知道,特徵圖的第一個通道是捲積核與輸入影像的前三個通道運算的結果,第七的通道則是與前四個輸入通道運算的結果,其他的以此類推。
  • https://ithelp.ithome.com.tw/upload/images/20230928/20163299JC7Kjv0Bev.jpg
  • 這樣有甚麼好處呢?一來可以大幅減少要學習的參數量,再來就是這樣不對稱的組合方式可以學習到更多樣的特徵。
  • 除了上述的連接方式,作者在許多小地方也提出了自己的想法,包括激勵函數的選擇、最後一層的連接方式等等的,感興趣的人可以參考:https://hackmd.io/@imkushwaha/lenet

二、影像處理大賽--傳統演算法與AI模型的競爭(更大更強的CNN--AlexNet)

  • 論文:https://proceedings.neurips.cc/paper_files/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf
  • ImageNet是一個大型資料集,在2010年以來每年都會舉辦電腦視覺任務的挑戰賽,歷史脈絡與簡單的介紹可以參考;https://zh.wikipedia.org/zh-tw/ImageNet 。這邊我們先來討論一個有趣的現象,想像一下,今天你站在你們家的車子前面跟車子合照,這張圖片如果要你替他分類的話,你會分類成「人」還是「車子」?這是個有趣的問題吧!因為這些用來訓練AI模型的資料集大多都是通過人工的方式進行標記,用來告訴AI模型我們想要的「預期結果」,這個標記的過程中有可能會出錯,也有可能會出現上面這種狀況,所以在ImageNet的挑戰賽中,AI的表現超越人類之後就停止舉辦了,不是因為人類輸給AI,而是說明對這樣的資料集來說,AI已經抓到比賽背後的規則了,或者你也可以說是AI猜出我們想要看到甚麼結果,當然這邊又衍伸出有趣的問題:對於這樣的資料集,現有的模型是否已經過擬合了?(這篇論文有討論類似的問題可以參考:https://arxiv.org/abs/1806.00451)
  • 回到我們的主題,AlexNet在2012年時成為比賽的冠軍,並且狠狠地甩其他人好幾條街,這時候大家就把目光放在這樣的CNN架構上,認為通過這樣的方式或許真的可以抓到大量數據背後的規則(在這之前大家都還保持懷疑的態度,認為不可能單靠提供訓練資料量就有好的表現)。
  • https://ithelp.ithome.com.tw/upload/images/20230928/20163299aybAQRsGE6.png
  • AlexNet的論文可以說是集前人經驗之大成,跟LeNet-5一樣,許多細節上,作者有自己的設計理念。總的來說,AlexNet的大突破有以下幾點:使用GPU訓練、比LeNet-5多增加一層捲積層、使用資料擴充(Data augmentation)技術(我們在https://ithelp.ithome.com.tw/articles/10322732 最後有提過)、使用Dropout(可以回顧https://ithelp.ithome.com.tw/articles/10322150)、使用新的激勵函數(ReLU)避免梯度消失。
  • 其實說到這邊,應該有些人會覺得哪裡怪怪的,才8層的模型,使用了非常多的資料去訓練,這樣不會有過擬合(Overfitting)現象嗎?是的沒錯,所以作者使用了Dropout來處理這個問題。
  • 另外一個需要討論的地方是:甚麼是梯度消失?這邊先留個懸念給大家,明天我們再來好好聊聊這個問題。大家可以先好好回想一下反向傳播與梯度更新的方式,並且思考一下不同的激勵函數會產生什麼樣的影響,先提示一下,跟函數的定義域與值域有關,既然輸出與輸入是被限制住的,那麼如果要把這樣的資訊傳遞下去的話,是不會就會少了某些資訊?

三、總結

  • 今天我們介紹了讓CNN正式走入大眾視野的兩大模型架構:LeNet-5與AlexNet,兩者都是非常經典的架構,在每個關鍵細節上的設計也都有提出一些很實用的方式,很多到現在都還有延續在使用,這就是為甚麼所有談論CNN的文章、教學內容等等都一定會先從這兩篇論文開始的原因。之後我們也會陸陸續續介紹其他的經典論文,希望大家繫好安全帶,帶著一顆愉悅的心,讓我們一起在這時光的長河中好好探索!

上一篇
番外篇—AI模型怎麼學得好?欠擬合(Underfitting)與過擬合(Overfitting)
下一篇
CNN經典論文實戰(一)--LeNet與AlexNet
系列文
AI白話文運動系列之「A!給我那張Image!」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言